package com.xhcl.system.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.xhcl.system.mapper.TSrhsYhsjjsMapper;
import com.xhcl.system.domain.TSrhsYhsjjs;
import com.xhcl.system.service.ITSrhsYhsjjsService;
import com.xhcl.common.core.text.Convert;
import com.xhcl.common.exception.BusinessException;

/**
 * 银行数据接收Service业务层处理
 * 
 * @author xhcl
 * @date 2020-09-02
 */
@Service
public class TSrhsYhsjjsServiceImpl implements ITSrhsYhsjjsService 
{
    @Autowired
    private TSrhsYhsjjsMapper tSrhsYhsjjsMapper;

    /**
     * 查询银行数据接收
     * 
     * @param lsh 银行数据接收ID
     * @return 银行数据接收
     */
    @Override
    public TSrhsYhsjjs selectTSrhsYhsjjsById(String lsh)
    {
        return tSrhsYhsjjsMapper.selectTSrhsYhsjjsById(lsh);
    }

    /**
     * 查询银行数据接收列表
     * 
     * @param tSrhsYhsjjs 银行数据接收
     * @return 银行数据接收
     */
    @Override
    public List<TSrhsYhsjjs> selectTSrhsYhsjjsList(TSrhsYhsjjs tSrhsYhsjjs)
    {
        return tSrhsYhsjjsMapper.selectTSrhsYhsjjsList(tSrhsYhsjjs);
    }

    /**
     * 新增银行数据接收
     * 
     * @param tSrhsYhsjjs 银行数据接收
     * @return 结果
     */
    @Override
    public int insertTSrhsYhsjjs(TSrhsYhsjjs tSrhsYhsjjs)
    {
        return tSrhsYhsjjsMapper.insertTSrhsYhsjjs(tSrhsYhsjjs);
    }

    /**
     * 修改银行数据接收
     * 
     * @param tSrhsYhsjjs 银行数据接收
     * @return 结果
     */
    @Override
    public int updateTSrhsYhsjjs(TSrhsYhsjjs tSrhsYhsjjs)
    {
        return tSrhsYhsjjsMapper.updateTSrhsYhsjjs(tSrhsYhsjjs);
    }

    /**
     * 删除银行数据接收对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteTSrhsYhsjjsByIds(String ids)
    {
        return tSrhsYhsjjsMapper.deleteTSrhsYhsjjsByIds(Convert.toStrArray(ids));
    }
    
    @Override
    @Transactional
	public int deleteTSrhsYhsjjsById(String lsh) throws BusinessException {
		// TODO Auto-generated method stub
    	TSrhsYhsjjs sjjs=tSrhsYhsjjsMapper.selectTSrhsYhsjjsById(lsh);
    	if (sjjs==null ){
    		throw new BusinessException("未找到要删除的记录！");
    	}
    	if (sjjs!=null && sjjs.getSfjs()!=null && sjjs.getSfjs()==1L){
    		throw new BusinessException("已接收生成凭证不能删除！");
    	}
    	tSrhsYhsjjsMapper.deleteTSrhsincomemxById(lsh);
    	tSrhsYhsjjsMapper.deleteTSrhsincomejksById(lsh);
		return tSrhsYhsjjsMapper.deleteTSrhsYhsjjsById(lsh);
	}
    /**
     * 银行数据接收
     * 
     * @param lsh 银行数据接收ID
     * @return 结果
     */
    public Map acceptData(String lsh,String userName)
    {   Map<String,Object> paramMap=new HashMap<String,Object>();
        paramMap.put("lsh", lsh);
        paramMap.put("jsr", userName);
        //paramMap.put("pzbh", 0);
        //paramMap.put("outrev", "");
        tSrhsYhsjjsMapper.acceptData(paramMap);
        return paramMap;
    }
    
    public Map unacceptData(String pztxh,String userName)
    {   Map<String,Object> paramMap=new HashMap<String,Object>();
        paramMap.put("pztxh", pztxh);
        tSrhsYhsjjsMapper.unacceptData(paramMap);
        return paramMap;
    }
    /**
     * 查询银行数据接收列表
     * 
     * @param tSrhsYhsjjs 银行数据接收
     * @return 银行数据接收
     */
    @Override
    public List<TSrhsYhsjjs> selectTSrhsYhsjjsForYhList(TSrhsYhsjjs tSrhsYhsjjs)
    {
        return tSrhsYhsjjsMapper.selectTSrhsYhsjjsForYhList(tSrhsYhsjjs);
    }
	
}
